package com.experiment.aicommunityback.mapper;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.experiment.aicommunityback.entity.RUutil;
import com.experiment.aicommunityback.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;


@Mapper
public interface UserMapper extends BaseMapper<User> {

    /**
     * 展示所有用户
     * */
    List<User> allUser();

    /**
     * 展示用户对应的最高权限
     */
    List<RUutil> userOFRole();

    /**
     * 查找用户
     * */
    User queryByName(@Param("username")String name);
    User queryById(@Param("id")int id);

    /**
     * 新增用户
     * */
    Boolean addUser(User user);

    /**
     * 为新增用户向UR表插入默认权限（.yml中设置）
     */
    Boolean addDefaultRole(int userId,int defaultRoleId);

    /**
     * 删除用户
     * */
    Boolean deleteUser(Integer id);

    /**
     * 更新用户
     */
    Boolean updatedUser(User user);

    /**
     * 删除UR表中userId为所给id的用户的拥有权限
     * @param userId 要删除id
     */
    int deleteUR(int userId);

    /**
     * <Strong>未实现</Strong><hr>
     * 插入用户所拥有的权限
     */
    int userAddRole(int userId,List<String> roleList);

    /**
     * 更新用户所拥有的权限
     */
    int userUpdatedRole(int userId,int roleId);

    /**
     * 根据用户name获取对应id
     */
    int nameToUserId(String userName);

    /**
     * 根据给出的UserId返回对应的roleCode
     */
    String queryRoleCode(int userId);
}
